A workflow process (called a “process” herein) is a directed, acyclic graph of activities to be performed In general, an activity is a unit of work to be performed by, for instance, a human or a software agent; a block of activities which can be repeated until some condition is reached; or another process. Between activities are links, possibly conditional, which are evaluated at runtime to determine an execution path. Data can also be passed between activities or made globally available to all activities.
Because a process is a graph of activities to be conditionally performed, a process is considered to be a model (i.e., a template) for the execution of the activities. An execution of a process is referred to as a process instance. The representation of an activity within a process is performed by an activity instance. If and in what order the activity instances within a process instance are readied for execution is determined by the links between activity instances in the process model. An activity instance which is ready to be executed can be queued in one or more work lists, each of which is associated with a human or software agent which can perform the activity, and is commonly referred to as a work item. In the scheduling domain, a job is equivalent to a process instance, and a task is equivalent to an activity instance or a work item.
A Workflow Management System (WFMS) enables the modeling and execution of processes. A WFMS facilitates codification, automation, composition, and lifecycle management of business system support (BSS) and operations system support (OSS) processes. IBM WebSphere MQ Workflow is an example of a WFMS. Workflow management is also emerging as an important application execution management technology, particularly in the area of grid and utility computing, where planned application execution sequences are essentially managed and composed as automated workflows. The ability to manage the execution of processes is valuable across the many domains where workflow is employed. Some examples of processes which can benefit from process execution management are semi-automated loan approval workflows, Information Technology (IT) operations management workflows (e.g., provisioning of servers), and software application job execution workflows.
Illustratively, consider a business which offers its customers a number of services with guaranteed levels of service level and associated refund and rewards. For example, the business may offer a storage service with a service level guarantee that, over the course of a month, 97 percent of customer requests for additional storage will be provisioned within two hours. If the business fails to meet this commitment, a penalty, which is a percentage of the monthly service fee, will be refunded to the customer. The penalty could be defined as a step function which increases as the percentage of customer requests completed within the threshold of two hours decreases. The business offers several different classes of storage (e.g., economy, fast, and super-fast) with different service level guarantees (e.g., in terms of target percentage and threshold time) at appropriate prices with different refunds and rewards. The refunds and rewards which the business offers to its customer represent an actual financial impact to the business as well as an objective measure of value to the customer.
The business has an obligation to meet its commitments and needs to do so in a cost effective and efficient manner if it is to remain viable and competitive. Therefore, when the business executes its processes (e.g., responding to customer requests for additional storage), the business needs to manage its resources (e.g., people and computing servers) in a manner consistent with the business commitments (e.g., service quality defined as service levels) and cost and efficiency objectives of the business (e.g., to minimize penalties). Current WFMSs ready activity instances for execution based on conditions and navigation defined by the processes, but no explicit consideration is given to objectives or commitments of businesses.
What is needed then are techniques for enabling an organization to manage process execution in a manner which meets its commitments while also meeting its cost and efficiency objectives.